Computer graphics displays that have very large sizes and high resolutions are useful in a variety of applications. For example, such displays can be used to create immersive environments in which viewers are surrounded by the display. Such displays are also useful when large amounts of data must be viewable on one large screen, such as in stock market applications, large process control applications and the like. Frequently, in order to provide such a large display with adequately high resolution, a composite screen must be constructed using numerous separate physical display devices such as CRT-type monitors. If the composite screen is to be used interactively, then suitable control mechanisms must also be for a Large, Physical Workspace" (hereinafter "Walls, et al."), which patent application is hereby incorporated entirely by reference.
By way of background, the X Window System is a standard for implementing window-based user interfaces in a networked computer system. For a more detailed discussion of the X Window System and the X Protocol that defines it, see Adrian Nye, X Protocol Reference Manual Volume Zero (O'Reilly & Associates 1990). FIG. 1 illustrates a conventional X Window System configuration that does not implement single logical screen functionality. Host computer system 100 is coupled to host computer system 102 via connections to local area network ("LAN") 104. Host computer system 102 drives display hardware 106 via bus 108 and is capable of receiving input from devices such as a keyboard 109, a mouse 111 or other devices such as a button box 113. X client software 110 runs on host 100, while X server software 112 runs on host 102. Although configurations of client 110 may vary, a typical client would comprise an application 114 that communicates with server 112 by means of calls to low-level library Xlib 116. Optionally, Xlib 116 may be augmented by a higher-level library such as XToolkit 118. The purpose of X server 112 is to implement a user interface on display hardware 106 responsive to commands received from X client 110 and input devices 109, 111 and 113. A conventional X server 112 includes three basic components: a device independent X ("DIX") layer 120, an operating system ("OS") layer 122, and a device dependent X ("DDX") layer 124. DIX layer 120 contains the parts of the server software that are portable from one hardware/OS implementation to another. OS layer 122 implements server functions that vary with specific operating systems. DDX layer 124 implements server functions that depend on the capabilities of particular graphics hardware and input devices. For a more detailed discussion of conventional X server 112, see, Elias Israel and Erik Fortune, The X Window System Server (Digital Press 1992) (hereinafter "Israel and Fortune").
FIG. 2 illustrates an X Window System configuration that implements 2D single logical screen functionality according to the teaching of Walls, et al. In the configuration of FIG. 2, augmented X server software 200 runs on host computer 220. X server 200 controls multiple display hardware devices 202, 204, 208 and 208 via buses 203, 205, 207 and 209. This capability is accomplished by the addition of a single-logical-screen ("SLS") layer 210 to X server 200, as well as a separate DDX layer 212, 214, 216 and 218 for each of the display hardware devices. An advantage of the configuration of FIG. 2 is that single logical screen functionality is provided in a way that is transparent to X Client 110. In other words, the single logical screen functionality provided by X Server 200 enables X Client 110 to function as though it were communicating with one large, high-resolution device. The overhead required to provide the high-resolution single logical screen functionality using several smaller-resolution devices is subsumed entirely within X server 200.
The configuration of FIG. 2 does have limitations, however. One of the challenges associated with implementing a very large single logical screen display is that many physical display devices are required to implement the composite screen. Moreover, each of the physical display devices in the composite screen is usually driven by a separate graphics hardware subsystem. Typically, each such graphics hardware subsystem resides on a graphics circuit card (or cards), which must be installed in a bus socket (or sockets) on the backplane of a host computer system. Unfortunately, there is a physical limit to the number of graphics circuit cards that may be installed into the bus sockets that are provided on a single backplane. While special-purpose backplanes have been built that are capable of receiving as many as nine graphics circuit cards at once, such special-purpose implementations are expensive. The backplanes in more conventional computer systems are only able to receive about four graphics circuit cards for 2D hardware, and fewer than four cards for 3D hardware. (3D graphics circuit cards can require three or more bus slots per card.)
One way of addressing the need for having many graphics circuit cards when attempting to implement a very large single logical screen display would be to use numerous computer systems to support the composite screen. In this manner, numerous backplanes would be provided for receiving the graphics circuit cards (one backplane per computer system). Moreover, each of the computer systems used to support the larger logical screen could be configured like computer system 220 shown in FIG. 2. Unfortunately, the configuration shown in FIG. 2 is only transparent to X client 110 when X server 200 manages the entire logical screen. Therefore, if multiple computer systems 220 were used in order to create a larger logical screen, with each of the computer systems 220 running a separate X server 200, then X client 110 would have to assume a degree of the overhead required to implement the SLS functionality for the larger composite screen. Moreover, only 2D single logical screen functionality is supported by the configuration of FIG. 2.
It is therefore an object of the present invention to provide 3D SLS functionality for very large composite screens in a manner that is transparent to the application software in the X client.
It is a further object of the invention to provide such 3D SLS functionality in a manner that enables multiple backplanes to be used for implementing very large composite screens.